picoCTF Dachshund Attacks Write Up
Details:
Points: 80
Jeopardy style CTF
Category: Cryptography
Comments: What if d is too small? Connect with nc mercury.picoctf.net 36463.
Write up:
Connecting to the server we get:
nc mercury.picoctf.net 36463
Welcome to my RSA challenge!
e: 91115567195027350895225560399455244362720021754899107756410074334209455892162811273825343686291841011648918176880342769765729513668499163473486857339763539838060477495323354934137888927423479933238497081902630135184078635654878144686759685155101198352568732023289130719032380197862222536684105144279675442123
n: 103745413463880171120735871844529893326611534731306537975696763552267517976211171198935418209226935162191683483155845420301787200950820137296268894842430250495225801106132567393232466191857377595684772962407774444406729253116393583946162093641858398732784677896748429349711170746832765300751935575362719901499
c: 61432015748898990762397713786644171621605190512404158076773779079915928413885901633130003528714781535347625246383330061936862779236084965211135628785315173575356052776533908234178749400706144156779485635554354769702513192886037227512966025741946251817568886524160073438429722451766947965385579027324642172865
Based on the hint about d being too small and the dachshund reference I assumed that this would be wiener's attack so I used RsaCtfTool.py:
python3.8 RsaCtfTool.py -e 91115567195027350895225560399455244362720021754899107756410074334209455892162811273825343686291841011648918176880342769765729513668499163473486857339763539838060477495323354934137888927423479933238497081902630135184078635654878144686759685155101198352568732023289130719032380197862222536684105144279675442123 -n 103745413463880171120735871844529893326611534731306537975696763552267517976211171198935418209226935162191683483155845420301787200950820137296268894842430250495225801106132567393232466191857377595684772962407774444406729253116393583946162093641858398732784677896748429349711170746832765300751935575362719901499 --uncipher 61432015748898990762397713786644171621605190512404158076773779079915928413885901633130003528714781535347625246383330061936862779236084965211135628785315173575356052776533908234178749400706144156779485635554354769702513192886037227512966025741946251817568886524160073438429722451766947965385579027324642172865 --attack wiener
private argument is not set, the private key will not be displayed, even if recovered.
[*] Testing key /tmp/tmpt_vylnmf.
[*] Performing wiener attack on /tmp/tmpt_vylnmf.
100%|████████████████████████████████████| 562/562 [00:00<00:00, 2604.21it/s]
26%|█████████▏ | 144/562 [00:00<00:00, 4326.16it/s]
Results for /tmp/tmpt_vylnmf:
Unciphered data :
HEX : 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007069636f4354467b70726f76696e675f7769656e65725f323633353435377d
INT (big endian) : 198614235373674103788888306985643587194108045477674049828366797219789354877
INT (little endian) : 87929423597352679385967218520166303991072976481688015390619332199393487159846427007656726002893661291688789949733998347484593955431421780017717645548309057720377739178319689349000771259261816797717335362676896926195097120075074880228214198840835344888918249631507726084030139901782753927540936914496464617472
STR : b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00picoCTF{proving_wiener_2635457}'
Which gave me the flag:
picoCTF{proving_wiener_2635457}